﻿namespace Sidvall.Caching
{
	public interface ICache
	{
		bool Contains(string key, string regionName);

		bool Add(CacheItem item, CacheItemPolicy policy);
		CacheItem AddOrGetExisting(CacheItem item, CacheItemPolicy policy);
		void AddOrUpdate(CacheItem item, CacheItemPolicy policy);

		CacheItem GetCacheItem(string key, string regionName);
		object GetCacheItemValue(string key, string regionName);

		long GetCount(string regionName);

		object Remove(string key, string regionName);
	}
}
